package com.sz.biz.common.base.service;

import com.sz.biz.common.base.entity.Currency;
import com.sz.biz.common.base.dto.CurrencyDto;
import com.sz.common.base.dto.QResultDto;
import com.sz.common.base.dto.QueryParams;

import java.util.List;

/**
 * Function: CarrierCompanyService <br>
 * Author: xutao <br>
 * Date: 2016-01-21 14:25:00
 */
public interface CurrencyService {
    /**
     *
     */
    void refreshCache();

    /**
     * 新增货币(批量)
     *
     * @param listCurrency
     * @return
     * @throws Exception
     */
    void saveCostCurrencyDict(List<Currency> listCurrency);

    /**
     * 新增货币(批量)
     *
     * @param currency
     * @return
     * @throws Exception
     */
    String save(Currency currency);

    /**
     * 根据ccode删除货币
     *
     * @param listCode
     * @throws Exception
     */
    void deleteByCode(List<Integer> listCode);

    /**
     * 修改货币
     *
     * @param currency
     * @return
     * @throws Exception
     */
    String updateCurrencyById(Currency currency);

    /**
     * 根据地区ccode查询货币信息
     *
     * @param q：搜索关键字 pageIndex：页码 pageSize：页大小
     * @return
     * @throws Exception
     */
    QResultDto findCurrencyList(String q, int pageIndex, int pageSize, String sortName,
                                boolean isAsc, String language);

    /**
     * 根据ID查找对应货币信息
     *
     * @param code:货币代码
     */
    QResultDto findCurencyByCode(String code);

    /**
     * 根据ID查找对应货币信息
     *
     * @param code:货币代码
     */
    CurrencyDto findSingleCurencyByCode(String code);

    /**
     * 根据ID查找对应货币信息
     *
     * @param id:货币id
     */
    Currency findCurrencyById(Integer id);
//    /**
//     * 批量导入货币
//     *
//     * @param filePath
//     * @return
//     * @throws Exception
//     */
//    void batchImport(String filePath);
//    /**
//     * 批量导出货币
//     *
//     * @param filePath
//     * @return
//     * @throws Exception
//     */
//    void exportFile(String filePath);

    /**
     * 查询国际化数据
     *
     * @param params:查询参数
     * @return 查询出的数据
     * @throws Exception 异常信息
     */
    @SuppressWarnings("rawtypes")
    QResultDto findI18nByParam(QueryParams params, boolean unfilled);

    /**
     * 凭借language获取货币列表
     */
    QResultDto findCurrencies(String q, int pageIndex, int pageSize);
}
